package com.xbongbong.paas.pojo.dto;

import com.xbongbong.paas.toolbox.wrap.BaseDTO;
import com.xbongbong.paas.toolbox.wrap.QueryIgnore;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Set;
import java.util.List;

/**
 * @author: wufeng
 * @date: 2018/12/3 10:17
 * @desrcption: 查询重复对象
 */
@Getter
@Setter
@ToString
public class FormDataRepeatDTO extends BaseDTO {
    private static final long serialVersionUID = 4146754193393170203L;

    /**
     * 应用ID
     */
    @NotNull(message = "{dto.msg.formDataRepeat.appId.NotNull}")
    private Long appId;

    /**
     * 表单id
     */
    @NotNull(message = "{dto.msg.formDataRepeat.formId.NotNull}")
    private Long formId;
    /**
     * 菜单id
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private Long menuId;

    /**
     * 字段标识
     */
    @NotBlank(message = "{dto.msg.formDataRepeat.attr.NotBlank}")
    @Getter(onMethod_ = {@QueryIgnore})
    private String attr;

    @Getter(onMethod_ = {@QueryIgnore})
    private String subAttr;

    /**
     * 字段标识的值
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private Object value;

    /**
     * 子表单字段的值，可以有多个，包括电话子表单
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private List<String> subValueList;


    /**
     * saas标记
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private Integer saasMark;

    /**
     * saas业务类型
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private Integer businessType;
    /**
     * 编号
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private String serialNo;

    private Integer del;

    @Getter(onMethod_ = {@QueryIgnore})
    private Long dataId;
    /**
     * 是否是新版本，1代表是，0或者没有代表不是（目前仅报价单需要）
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private Integer newVersion;
    /**
     * 报价单组号（目前仅报价单需要）
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private String groupNumber = "";
    /**
     * 联系人数据id，联系人电话判重用
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private Set<Long> contactDataIdSet;

    /**
     * 流程任务节点id
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private Long taskId;

    /**
     * 子表单数据 id
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private Long subDataId;

    /**
     * 标识是鼠标失去焦点还是新建、编辑的保存,
     */
    private Boolean isEdit;

    private Boolean isImport;
    /**
     * 当前用户是否有查重权限
     */
    private Boolean isRecheckPermission;
}
